package controller;

import dao.TagQuestaoJpaController;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import dao.exceptions.NonexistentEntityException;
import model.TagQuestao;
import pagecontroller.JsfUtil;

/**
 *
 * @author Edilson Fernandes da Costa
 * @version 1.0
 */
public class TagQuestaoController {

    public TagQuestaoController() {
        if (JsfUtil.getObjectFromSession("TagQuestaoJpaController") == null) {
            jpaController = new TagQuestaoJpaController();
        } else {
            jpaController = (TagQuestaoJpaController) JsfUtil.getObjectFromSession("TagQuestaoJpaController");
        }
    }
    private TagQuestao tagQuestao = null;
    private TagQuestao tagQuestaoAux = null;
    private TagQuestaoJpaController jpaController = null;
    private List<TagQuestao> tagQuestaos = null;


   public void persiste() {
        if (tagQuestao.getId() == null) {
            create();
        } else {
            update();
        }
    }

    public String update() {
        try {
            jpaController.edit(this.tagQuestao);
            tagQuestaoAux = tagQuestao;
            this.tagQuestao = null;
            JsfUtil.addSuccessMessage("TagQuestao Atualizado com Sucesso");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(TagQuestaoController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(TagQuestaoController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "refreshPage";
    }

    public String create() {
        try {
            jpaController.create(tagQuestao);
            tagQuestaoAux = tagQuestao;
            tagQuestao = null;
            JsfUtil.addSuccessMessage("TagQuestao cadastrado com sucesso.");
        } catch (Exception e) {
            JsfUtil.ensureAddErrorMessage(e, "Ocorreu um erro na percistencia dos dados.");
            return null;
        }
        return "refreshPage";
    }

    public String edit() {
        TagQuestao tagQuestaoTemp = (TagQuestao) JsfUtil.getObjectFromRequestParameter("tagQuestao");
        this.tagQuestao = tagQuestaoTemp;
        return "refreshPage";
    }

    public String destroy() {
        TagQuestao tagQuestaoTemp = (TagQuestao) JsfUtil.getObjectFromRequestParameter("tagQuestao");
        try {
            jpaController.destroy(tagQuestaoTemp.getId());
            JsfUtil.addSuccessMessage("TagQuestao removido com sucesso.");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(TagQuestaoController.class.getName()).log(Level.SEVERE, null, ex);
        }

        return "refreshPage";
    }


    public TagQuestao getTagQuestao() {
        if (tagQuestao == null) {
            tagQuestao = new TagQuestao();
        }
        return tagQuestao;
    }

    public List<TagQuestao> getTagQuestaos(){
        this.tagQuestaos = jpaController.findTagQuestaoEntities();
        return this.tagQuestaos;
    }

    public TagQuestaoJpaController getJpaController() {
        return jpaController;
    }

    public TagQuestao getTagQuestaoAux() {
        return tagQuestaoAux;
    }


}
